package cn.b.sky.shop.activiti.service;

import cn.b.sky.shop.activiti.model.FlowNode;
import cn.b.sky.shop.activiti.model.FlowNodeEvent;
import cn.b.sky.shop.activiti.model.FlowNodeUser;

import java.util.List;

public interface FlowNodeService {

  /**
   * 
   * <strong>Title : getFlowNodeUserByFlowNode<br></strong>
   * <strong>Description : </strong>获取节点配置的用户信息<br> 
   * <strong>Create on : 2016-12-1 下午2:35:24<br></strong>
   * <p>
   * @param flowNode
   * @return
   * List<FlowNodeUser>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<FlowNodeUser> getFlowNodeUserByFlowNode(FlowNode flowNode);

  /**
   * 
   * <strong>Title : getFlowNodeEventByFlowNode<br></strong>
   * <strong>Description : </strong>获取节点的事件信息<br> 
   * <strong>Create on : 2016-12-1 下午2:35:51<br></strong>
   * <p>
   * @param flowNode
   * @return
   * List<FlowNodeEvent>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<FlowNodeEvent> getFlowNodeEventByFlowNode(FlowNode flowNode);

  /**
   * 
   * <strong>Title : getFlowNodeByModeIdAndActivitId<br></strong>
   * <strong>Description : </strong>获取流程模型的摸个节点信息<br> 
   * <strong>Create on : 2016-12-1 下午3:01:10<br></strong>
   * <p>
   * @param modeId
   * @param activitId
   * @param tenantId
   * @return
   * FlowNode
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public FlowNode getFlowNodeByModeIdAndActivitId(String modeId, String activitId, String tenantId);

  /**
   * 
   * <strong>Title : getFlowNodeByFlowNodeId<br></strong>
   * <strong>Description : </strong>通过节点id获取节点信息<br> 
   * <strong>Create on : 2016-12-1 下午3:01:29<br></strong>
   * <p>
   * @param flowNodeId
   * @return
   * FlowNode
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public FlowNode getFlowNodeByFlowNodeId(Long flowNodeId);

  /**
   * 
   * <strong>Title : modifyFlowNodeUser<br></strong>
   * <strong>Description : </strong>修改节点用户的配置信息<br> 
   * <strong>Create on : 2016-12-1 下午3:01:50<br></strong>
   * <p>
   * @param flowNodeUser
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void modifyFlowNodeUser(FlowNodeUser flowNodeUser);

  /**
   * 
   * <strong>Title : modifyFlowNodeEvent<br></strong>
   * <strong>Description : </strong>修改节点的事件配置信息<br> 
   * <strong>Create on : 2016-12-1 下午3:02:06<br></strong>
   * <p>
   * @param flowNodeEvent
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void modifyFlowNodeEvent(FlowNodeEvent flowNodeEvent);

  /**
   * 
   * <strong>Title : saveFlowNode<br></strong>
   * <strong>Description : </strong>保存节点信息<br> 
   * <strong>Create on : 2016-12-1 下午3:02:25<br></strong>
   * <p>
   * @param flowNode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveFlowNode(FlowNode flowNode);
  
  /**
   * 
   * <strong>Title : modifyFlowNode<br></strong>
   * <strong>Description : </strong>修改节点信息<br> 
   * <strong>Create on : 2016-12-1 下午3:11:12<br></strong>
   * <p>
   * @param flowNode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void modifyFlowNode(FlowNode flowNode);

  /**
   * 
   * <strong>Title : saveFlowNodeUser<br></strong>
   * <strong>Description : </strong>保存节点的用户配置信息<br> 
   * <strong>Create on : 2016-12-1 下午3:02:59<br></strong>
   * <p>
   * @param flowNodeUser
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveFlowNodeUser(FlowNodeUser flowNodeUser);

  /**
   * 
   * <strong>Title : saveFlowNodeEvent<br></strong>
   * <strong>Description : </strong>保存节点的事件信息<br> 
   * <strong>Create on : 2016-12-1 下午3:05:29<br></strong>
   * <p>
   * @param flowNodeEvent
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveFlowNodeEvent(FlowNodeEvent flowNodeEvent);

  /**
   * 
   * <strong>Title : deleteFlowNodeUserById<br></strong>
   * <strong>Description : </strong>删除节点用户信息，主键<br> 
   * <strong>Create on : 2016-12-1 下午3:05:56<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteFlowNodeUserById(Long id);

  /**
   * 
   * <strong>Title : deleteFlowNodeEventById<br></strong>
   * <strong>Description : </strong>删除节点事件信息，主键<br> 
   * <strong>Create on : 2016-12-1 下午3:06:16<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteFlowNodeEventById(Long id);

  /**
   * 
   * <strong>Title : batchSaveFlowNodeUser<br></strong>
   * <strong>Description : </strong>批量保存，节点的用户信息和表单信息<br> 
   * <strong>Create on : 2015-11-19 下午2:08:05<br></strong>
   * <p>
   * @param flowNodeUsers
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void batchSaveFlowNodeUser(List<FlowNodeUser> flowNodeUsers, String formKey, String flowNodeId);
}
